package br.com.news.ws;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;

import org.apache.log4j.Logger;

import br.com.news.utils.database.beans.CategoriaUsuarioBean;
import br.com.news.utils.database.beans.UsuarioBean;
import br.com.news.utils.service.exception.ServiceException;

@Path("/categoriaUsuario")
public class CategoriaUsuarioWs extends GenericWs<CategoriaUsuarioBean>{
	
	private static final Logger logger = Logger.getLogger(NoticiaWs.class);

	@GET
	@Path("/buscaCategoriasDeEnvioEmailDoUsuario")
	@Produces("application/json")
	@Consumes("application/json")
	public String buscaCategoriasDeEnvioEmailDoUsuario(String json) {
		
		UsuarioBean usuarioBean = (UsuarioBean) convertFromJson(json, new UsuarioBean());
		return listToJson( RmiFactory.getCategoriaUsuarioService().buscaCategoriasDeEnvioEmailDoUsuario(usuarioBean));
	}
	
	@GET
	@Path("/buscaCategoriaDoUsuario/{idUsuario}")
	public String buscaCategoriaDoUsuario(@PathParam(value="idUsuario") String idUsuario) {
		return listToJson( RmiFactory.getCategoriaUsuarioService().buscaCategoriaDoUsuario(idUsuario));
	}
	
	@PUT
	@Path("/insert")
	@Consumes("application/json")
	public void save(String json) {
		try {
			CategoriaUsuarioBean categoriaUsuarioBean = (CategoriaUsuarioBean) convertFromJson(json, new CategoriaUsuarioBean());
			RmiFactory.getCategoriaUsuarioService().save(categoriaUsuarioBean);
		} catch (ServiceException e) {
			logger.error(e.getMessage(),e);
		}
	}
	
	@PUT
	@Path("/update")
	@Consumes("application/json")
	public void update(String json) {
		try {
			CategoriaUsuarioBean categoriaUsuarioBean = (CategoriaUsuarioBean) convertFromJson(json, new CategoriaUsuarioBean());
			RmiFactory.getCategoriaUsuarioService().update(categoriaUsuarioBean);
		} catch (ServiceException e) {
			logger.error(e.getMessage(),e);
		}
	}
	
	@PUT
	@Path("/remove")
	@Consumes("application/json")
	public void remove(String json) {
		try {
			CategoriaUsuarioBean categoriaUsuarioBean = (CategoriaUsuarioBean) convertFromJson(json, new CategoriaUsuarioBean());
			RmiFactory.getCategoriaUsuarioService().remove(categoriaUsuarioBean);
		} catch (ServiceException e) {
			logger.error(e.getMessage(),e);
		}
	}
	
	
}
